package LeetCode刷题;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2022-03-09 09:43
 * @description: Functions of this class is
 *
 **/
public class 反转链表IIandK个一组翻转链表 {
    public static void main(String[] args) {

    }
    /**
     * class Solution {
     *     public ListNode reverseBetween(ListNode head, int left, int right) {
     *         if(head!=null&&head.next!=null&&left!=right){
     *             ListNode pre=null;
     *             ListNode tempLeft=null;
     *             ListNode h=head;
     *             int index=1;
     *             while(h!=null){
     *                 if(index==left){
     *                     //开始进入边界了,开始反转
     *                     ListNode tail=h;//记录左边界断开处第一个元素，用于最后反转的时候连接上
     *                     while(h!=null&&index<=right){
     *                         index++;
     *                         ListNode temp=h.next;
     *                         h.next=pre;
     *                         pre=h;
     *                         h=temp;
     *                     }
     *                     //开始和原链表进行相连
     *                     //将左边断开处接上
     *                     if(left>1){
     *                         tempLeft.next=pre;
     *                     }
     *                     //再接上右边界之后元素
     *                     tail.next=h;
     *                     break;
     *                 }
     *                 tempLeft=h;
     *                 h=h.next;
     *                 index++;
     *             }
     *             return left==1?pre:head;//如果是要从第一个元素进行反转
     *         }
     *         return head;
     *     }
     * }
     */
}